package org.example.entity;


import lombok.Data;
import org.example.validate.UserGroup;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Data
public class User {
    @NotNull(groups = {UserGroup.Update.class}, message = "用户名不能为空")
    @Size(groups = {UserGroup.Update.class}, min = 5, max = 20, message = "用户名长度必须在5到20个字符之间")
    private String username;

    @NotNull(groups = {UserGroup.Update.class}, message = "密码不能为空")
    @Size(groups = {UserGroup.Update.class}, min = 8, max = 20, message = "密码长度必须在8到20个字符之间")
    private String password;

    /**
     * 如果控制器上只写了一个Validated注解，但是却没有写具体的UserGroup参数指明使用场景，那么默认就是校验的Default；对应的User实体里面
     * 写@NotBlank(message = "地址不能为空")的时候也不能写groups参数，默认也是Default；那么此控制器接口只校验User实体中没有写groups参数的属性字段
     * 这里也就只有address属性满足题意，因此这里只校验address参数
     * */
    @NotBlank(message = "地址不能为空")
    private String address;
}
